- 在MySQL中,有四种方式可以修改权限用户的密码
- 使用set password for命令
- 使用UPDATA语句
- 使用ALTER语句
- 使用 GRANT 语句
使用 set password for 命令
- 在 MySQL 中,只有 root 用户可以通过更新 MySQL 数据库来更改密码。使用 root 用户登录到 MySQL 服务器后,可以使用 SET 语句来修改普通用户密码
语法
set password for '用户名'@'IP地址' = password('新密码')
示例
mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)
使用 UPDATE 语法
使用update语法修改直接mysql.user中的密码字段
语法
UPDATE user SET authentication_string = password('新密码') WHERE user = '用户名' AND host = 'IP地址'
示例
mysql> USE mysql;
mysql> UPDATE user SET password = password('123') WHERE user = 'root' AND host = 'localhost';
Query OK, 0 rows affected,1 warning (0.27 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
使用 ALTER 语法
- 使用ALTER对数据表中的密码字段进行修改
语法
ALTER USER '用户名'@'IP地址' IDENTIFIED WITH mysql_native_password BY '密码'
示例
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected,1 warning (0.27 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
使用 GRANT 语句
- 还可以在全局级别使用 GRANT USAGE 语句指定某个账户的密码而不影响账户当前的权限。需要注意的是,使用 GRANT 语句修改密码,必须拥有 GRANT 权限。一般情况下最好使用该方法来指定或修改密码
语法
GRANT USAGE ON *.* TO '用户名'@’IP地址’ IDENTIFIED BY '新密码'
示例
mysql> GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'newpwd3';
Query OK, 0 rows affected, 1 warning (0.05 sec)
- 由运行结果可以看出,密码修改成功。